package alp.starcode.edms.framework.constant;

import alp.starcode.common.base.constant.BaseResultDataConstant;
import alp.starcode.common.base.constant.model.ResultModel;

/**
 * 自定义异常状态码，一个字母后跟5位数字标识符
 * 项目自定义状态码格式为一个字母加5数值
 *
 * @author liwang
 * @date 2021/11/17 17:14
 */
public interface ResultCode extends BaseResultDataConstant {

    /**
     * 角色数据相关异常
     */
    ResultModel ROLE_ID_NOT_EXISTS_EXCEPTION = new ResultModel("R10001", "角色流水号不存在");
    ResultModel ROLE_KEY_EXISTS_EXCEPTION = new ResultModel("R10002", "角色唯一标识已存在");
    /**
     * 用户相关异常
     */
    ResultModel TOKEN_INVALID = new ResultModel("409", "Token无效");
    ResultModel USER_NOT_EXISTS_EXCEPTION = new ResultModel("U10001", "用户不存在");
    ResultModel USER_LOGIN_ACCOUNT_EXISTS_EXCEPTION = new ResultModel("U10002", "登录账号已存在，且非当前用户");
    ResultModel USER_LOGIN_PASSWORD_EXCEPTION = new ResultModel("U10010", "密码验证失败");
    ResultModel USER_LOCKED_EXCEPTION = new ResultModel("U10011", "用户已锁定");
    ResultModel USER_DEPARTMENT_ROLE_NOT_EXISTS_EXCEPTION = new ResultModel("U10021", "用户主部门、角色信息不存在");
    ResultModel LOGIN_USER_INFO_CACHE_FAIL_EXCEPTION = new ResultModel("U12001", "登录用户信息缓存失败,请重新登录");

    ResultModel LOGIN_USER_INFO_NOT_EXISTS_EXCEPTION = new ResultModel("U12002", "用户信息不存在,请重新登录");

    /**
     * 功能相关异常
     *
     */
    ResultModel FUNCTION_NOT_EXISTS_EXCEPTION = new ResultModel("F10001", "系统功能不存在");
    ResultModel FUNCTION_PARENT_TYPE_EXCEPTION = new ResultModel("F20001", "上级类型不正确");
    /**
     * 部门相关异常
     */
    ResultModel DEPARTMENT_NOT_EXISTS_EXCEPTION = new ResultModel("D10001", "部门不存在");
    /**
     * 用户角色相关异常
     */
    ResultModel USER_ROLE_NOT_EXISTS_EXCEPTION = new ResultModel("UR10001", "用户角色不存在");
    ResultModel USER_ROLE_EXISTS_EXCEPTION = new ResultModel("UR10002", "用户角色已存在");

    /**
     * 文件相关异常
     */
    ResultModel FILE_TYPE_EXCEPTION = new ResultModel("F70001", "文件类型不符合要求");
    ResultModel FILE_UPLOAD_EXCEPTION = new ResultModel("F70002", "上传失败,未知错误");
    ResultModel FILE_DELETE_EXCEPTION = new ResultModel("F70003", "文件删除异常");
    ResultModel FILE_EXISTS_EXCEPTION = new ResultModel("F70004", "文件已存在");
    ResultModel FILE_PATH_NULL_EXCEPTION = new ResultModel("F70005", "文件上传地址为空");
    ResultModel FILE_NULL_EXCEPTION = new ResultModel("F70006", "上传文件不能为空");
    ResultModel FILE_NAME_NULL_EXCEPTION = new ResultModel("F70007", "文件名称不能为空");
    ResultModel FILE_DOWNLOAD_EXCEPTION = new ResultModel("F70008", "下载失败,未知错误");
    ResultModel FILE_NOT_EXISTS_EXCEPTION = new ResultModel("F70009", "文件不存在");
    ResultModel FILE_MODE_EXCEPTION = new ResultModel("F70010", "上传失败,配置存储类型错误");

    /**
     * 缓存相关异常
     */
    ResultModel CACHE_PUT_EXCEPTION = new ResultModel("CE10001", "存入缓存异常");
    ResultModel CACHE_GET_EXCEPTION = new ResultModel("CE10002", "获取缓存异常");
    ResultModel CACHE_DEL_EXCEPTION = new ResultModel("CE10003", "删除缓存异常");


}
